#pragma once
#include <Eigen.h>
#include <GL/glew.h>

class AShape
{
protected:
	Vector4f * mColor;
	Vector3f * mPoints;
public:
	AShape(void);
	~AShape(void);
	virtual void drawGL() = 0;
	void setColor(float r, float g, float b, float a);
	Vector4f * getColor();
	static const int TYPE_POINT = 1;
	static const int TYPE_LINE = 2;
	static const int TYPE_TRIANGLE = 3;
	static const int TYPE_RECTANGLE = 4;
	static const int TYPE_ANGLE = 5;
	virtual int returnType() = 0;
	Vector3f * returnPoints();
	virtual Vector3f* clickOnMarker(Vector2f* mousePos, int indexX, int indexY, int markerRadius) = 0;
	virtual float perimeterLength() = 0;
};
